@Test টেস্টএনজির অন্যতম গুরুত্বপূর্ণ অ্যানোটেশন, যা টেস্ট মেথড নির্দেশ করতে ব্যবহার করা হয়। যখন কোনো মেথডের উপর @Test অ্যানোটেশন প্রয়োগ করা হয়, তখন টেস্টএনজি সেই মেথডটিকে একটি টেস্ট কেস হিসেবে বিবেচনা করে।
@Test অ্যানোটেশনের মূল বৈশিষ্ট্য
- একটি মেথডকে টেস্ট কেস হিসেবে চিহ্নিত করে।
- বিভিন্ন প্যারামিটার (parameters) এবং বৈশিষ্ট্য (attributes) ব্যবহার করে টেস্টিং নিয়ন্ত্রণ করা যায়।
- গ্রুপিং, নির্ভরশীলতা, এবং প্যারালাল টেস্টিং সাপোর্ট করে।
@Test অ্যানোটেশনের সহজ ব্যবহার
import org.testng.annotations.Test;
public class SimpleTest {
@Test
public void sampleTest() {
System.out.println("This is a simple TestNG test.");
}
}
আউটপুট:
This is a simple TestNG test.
উপরের কোডে, sampleTest() মেথডে @Test অ্যানোটেশন ব্যবহৃত হয়েছে। এটি টেস্টএনজি দ্বারা একটি টেস্ট কেস হিসেবে চালিত হবে।
@Test অ্যানোটেশনের বৈশিষ্ট্যসমূহ
Priority (অগ্রাধিকার নির্ধারণ)
একাধিক টেস্টের ক্ষেত্রে priority নির্ধারণ করে টেস্ট চালানোর ক্রম নির্ধারণ করা যায়।
import org.testng.annotations.Test;
public class PriorityTest {
@Test(priority = 1)
public void firstTest() {
System.out.println("First Test");
}
@Test(priority = 2)
public void secondTest() {
System.out.println("Second Test");
}
@Test(priority = 0)
public void zeroPriorityTest() {
System.out.println("Zero Priority Test");
}
}
আউটপুট:
Zero Priority Test
First Test
Second Test
Priority: ডিফল্টভাবে 0 হয়, এবং ছোট সংখ্যার টেস্ট আগে চালানো হয়।
Enabled (টেস্ট সক্রিয় বা নিষ্ক্রিয় করা)
enabled প্যারামিটার ব্যবহার করে নির্দিষ্ট কোনো টেস্ট চালানো বা এড়ানো যায়।
import org.testng.annotations.Test;
public class EnabledTest {
@Test(enabled = true)
public void activeTest() {
System.out.println("This test will run.");
}
@Test(enabled = false)
public void skippedTest() {
System.out.println("This test will not run.");
}
}
আউটপুট:
This test will run.
TimeOut (নির্দিষ্ট সময়ের মধ্যে টেস্ট চালানো)
timeOut প্যারামিটার ব্যবহার করে টেস্টের জন্য সময়সীমা নির্ধারণ করা যায়।
import org.testng.annotations.Test;
public class TimeoutTest {
@Test(timeOut = 1000) // এক সেকেন্ড
public void timeSensitiveTest() throws InterruptedException {
Thread.sleep(500); // ৫০০ মিলিসেকেন্ড
System.out.println("Test completed within time.");
}
}
যদি মেথডটি নির্ধারিত সময়ে শেষ না হয়, তবে টেস্ট ব্যর্থ হবে।
ExpectedExceptions (নির্ধারিত এক্সসেপশন হ্যান্ডলিং)
expectedExceptions প্যারামিটার ব্যবহার করে নির্দিষ্ট কোনো এক্সসেপশন টেস্ট করা যায়।
import org.testng.annotations.Test;
public class ExceptionTest {
@Test(expectedExceptions = ArithmeticException.class)
public void divisionByZeroTest() {
int result = 1 / 0;
}
}
আউটপুট:
টেস্টটি সফল হবে কারণ এটি ArithmeticException প্রত্যাশা করেছিল।
Description (টেস্ট বর্ণনা)
description প্যারামিটার ব্যবহার করে টেস্ট সম্পর্কে বিস্তারিত বর্ণনা দেওয়া যায়।
import org.testng.annotations.Test;
public class DescriptionTest {
@Test(description = "This test verifies a simple assertion.")
public void simpleAssertionTest() {
assert 1 == 1 : "Assertion failed!";
}
}
@Test অ্যানোটেশনের ব্যবহার কেন গুরুত্বপূর্ণ?
- জাভা প্রোগ্রামে টেস্ট কেসগুলোকে সঠিকভাবে চিহ্নিত এবং সংগঠিত করতে সাহায্য করে।
- টেস্টের অগ্রাধিকার, সময়সীমা এবং নির্দিষ্ট শর্তাবলী অনুযায়ী টেস্ট কনফিগার করা সহজ হয়।
- বড় প্রকল্পে টেস্ট কেস ম্যানেজমেন্ট আরও কার্যকর এবং নমনীয় হয়ে ওঠে।
@Test অ্যানোটেশন ব্যবহার করে সহজেই বিভিন্ন টেস্ট কেস তৈরি এবং পরিচালনা করা যায়।
Read more